<template>


  <SearchTablePage :search-config="baseTableSearchModel" :table-config="baseTableModel" />

</template>

<script lang="ts" setup>
defineOptions({
  name: 'CompanyInfoPageData',   //全局别名
  title: '表格页',   //标题
});
// 接口
import CompanyInfoApi from '/@/api//CompanyInfoApi.ts';


import FORM_FIELD_TYPE from '/@/constants/FormFieldType';
import VDialog from '/@/utils/dialogUtil.ts'

const router = useRouter();
const baseTable = ref(null as any);
const baseTableSearch = ref(null as any);
const editRef = ref<any>(null);

// 表格搜索初始化searchModel
const baseTableSearchModel = ref({
  columnCount: 4,
  expandLimit: 6,
  autoFit: true,
  columnWidth: '300px',
  labelPosition: 'right',
  labelWidth: '100px',
  items: [ //搜索项初始化

    // {
    //   label: "编码",
    //   field: "no",
    //   clearable: true,
    //   type: FORM_FIELD_TYPE.INPUT,

    //   placeholder: "请输入",

    // },

    {
      label: "名称",
      field: "name",
      clearable: true,
      type: FORM_FIELD_TYPE.INPUT,

      placeholder: "请输入",

    },

    {
      label: "类型",
      field: "type",
      clearable: true,
      type: FORM_FIELD_TYPE.INPUT,

      placeholder: "请输入",

    },

    {
      label: "经营项目",
      field: "manageDescribe",
      clearable: true,
      type: FORM_FIELD_TYPE.INPUT,

      placeholder: "请输入",

    },

    // {
    //   label: "联系人",
    //   field: "contacts",
    //   clearable: true,
    //   type: FORM_FIELD_TYPE.INPUT,

    //   placeholder: "请输入",

    // },

    // {
    //   label: "电话",
    //   field: "phone",
    //   clearable: true,
    //   type: FORM_FIELD_TYPE.INPUT,

    //   placeholder: "请输入",

    // },

    // {
    //   label: "省id",
    //   field: "provinceId",
    //   clearable: true,
    //   type: FORM_FIELD_TYPE.INPUT,

    //   placeholder: "请输入",

    // },

    // {
    //   label: "市id",
    //   field: "cityId",
    //   clearable: true,
    //   type: FORM_FIELD_TYPE.INPUT,

    //   placeholder: "请输入",

    // },

    // {
    //   label: "区id",
    //   field: "areaId",
    //   clearable: true,
    //   type: FORM_FIELD_TYPE.INPUT,

    //   placeholder: "请输入",

    // },

    {
      label: "省",
      field: "province",
      clearable: true,
      type: FORM_FIELD_TYPE.INPUT,

      placeholder: "请输入",

    },

    {
      label: "市",
      field: "city",
      clearable: true,
      type: FORM_FIELD_TYPE.INPUT,

      placeholder: "请输入",

    },

    {
      label: "区",
      field: "area",
      clearable: true,
      type: FORM_FIELD_TYPE.INPUT,

      placeholder: "请输入",

    },

    {
      label: "地址",
      field: "adress",
      clearable: true,
      type: FORM_FIELD_TYPE.INPUT,

      placeholder: "请输入",

    },

    {
      label: "是否启用 0 未启用  1 启用",
      field: "status",
      clearable: true,
      type: FORM_FIELD_TYPE.INPUT,

      placeholder: "请输入",

    },

    {
      label: "社会统一编码",
      field: "creditCode",
      clearable: true,
      type: FORM_FIELD_TYPE.INPUT,

      placeholder: "请输入",

    },

    {
      label: "营业执照url",
      field: "businessLicenseUrl",
      clearable: true,
      type: FORM_FIELD_TYPE.INPUT,

      placeholder: "请输入",

    },

    {
      label: "创建人",
      field: "creator",
      clearable: true,
      type: FORM_FIELD_TYPE.INPUT,

      placeholder: "请输入",

    },

    {
      label: "修改人",
      field: "reviser",
      clearable: true,
      type: FORM_FIELD_TYPE.INPUT,

      placeholder: "请输入",

    },

    {
      label: "排序",
      field: "sort",
      clearable: true,
      type: FORM_FIELD_TYPE.INPUT,

      placeholder: "请输入",

    },

    {
      label: "创建时间",
      field: "create_time",
      clearable: true,
      type: FORM_FIELD_TYPE.DATE_RANGE,
      placeholder: "请输入",

      config: {
        props: {   //日期精度配置
          type: "daterange",
          startPlaceholder: "开始日期",
          endPlaceholder: "结束日期",
          format: "YYYY-MM-DD",
        }
      },
    },

  ],

  buttons: [    //功能区域
    {
      name: "导入",
      buttonClass: 'primary',
      width: 100,
      click: ({ row, handlers }) => {   //暴露的方法钩子
        //  CompanyInfoApi.pageDataXls( handlers.getRequestParams(),handlers.getXlsTitle())
        VDialog.open({
          title: '导入',
          content: { //内容初始形式
            type: 'component', //text:"",预留文本
            name: '/companyInfo/upload',
            // query: { companyInfoId: row.id },
          },
          config: {
            doUpload: CompanyInfoApi.uploadExcel,
            templateType: "company_template_type_1",
            // tips: '注：请先点击“下载模版”按钮下载模版，按照模版填写数据，再进行导入。'
          },
          callBack: (data: any) => {
            // handlers.refresh()
            console.log("upload recived data:", data)
          },
          onClose: () => {
            console.log("对话框已关闭");
          },
        })
      }
    },
  ]
})
// 表格初始化Model
const baseTableModel = ref({
  border: true,
  pagination: true,
  inline: true,
  selectable: true,
  isFullscreen: false,
  minWidth: '200px',
  data: {    //table  初始化
    current: 1,
    size: 10,
    total: 100,
    data: []
  },
  requestData: { api: CompanyInfoApi.getPageData, query: {} },   //数据源 参数有效性： 'steady|transient'
  columns: [
    // {
    //   label: "",
    //   field: "id",
    //   width: 100,
    // },
    {
      label: "编码",
      field: "no",
      width: 180,
    },
    {
      label: "名称",
      field: "name",
      width: 180,
    },
    {
      label: "类型",
      field: "type",
      width: 120,
    },
    {
      label: "经营项目",
      field: "manageDescribe",
      width: 180,
    },
    {
      label: "联系人",
      field: "contacts",
      width: 180,
    },
    {
      label: "电话",
      field: "phone",
      width: 180,
    },
    {
      label: "省id",
      field: "provinceId",
      width: 120,
    },
    {
      label: "市id",
      field: "cityId",
      width: 120,
    },
    {
      label: "区id",
      field: "areaId",
      width: 120,
    },
    {
      label: "省",
      field: "province",
      width: 180,
    },
    {
      label: "市",
      field: "city",
      width: 180,
    },
    {
      label: "区",
      field: "area",
      width: 180,
    },
    {
      label: "地址",
      field: "adress",
      width: 180,
    },
    {
      label: "是否启用 0 未启用  1 启用",
      field: "status",
      width: 120,
    },
    {
      label: "社会统一编码",
      field: "creditCode",
      width: 180,
    },
    {
      label: "营业执照url",
      field: "businessLicenseUrl",
      width: 180,
    },
    {
      label: "创建人",
      field: "creator",
      width: 180,
    },
    {
      label: "修改人",
      field: "reviser",
      width: 180,
    },
    {
      label: "排序",
      field: "sort",
      width: 120,
    },
    {
      label: "创建时间",
      field: "create_time",
      width: 200,
    },
    {
      label: "更新时间",
      field: "update_time",
      width: 200,
    },
  ],


  actions: [
    {
      name: "详情",

      buttonClass: 'primary',
      buttonType: 'text',
      click: ({ row, index, handlers }) => {

        //router.push({name: 'CompanyInfoDetail',})
        VDialog.open({
          title: '详情',
          content: { //内容初始形式
            type: 'component', //text:"",预留文本
            name: '/companyInfo/detail',
            query: { companyInfoId: row.id },

          },
          callBack: (data: any) => {
            handlers.refresh()
          },
          onClose: () => {
            console.log("对话框已关闭");
          },
        });
      },
      isShow: (row: object) => {
        return true;
      },
      fixed: 'right'
    },
    {
      name: "编辑",
      buttonClass: 'primary',   //按钮颜色控制
      buttonType: 'text',      // 按钮风格   text  link  button
      isShow: (row: object) => {  //根据业务做动态隐藏张氏
        return true
      },
      click: ({ row, index, handlers }) => {        // 点击回调事件方法钩子，  点击触发

        VDialog.open({
          title: '编辑',
          content: { //内容初始形式
            type: 'component', //text:"",预留文本
            name: '/companyInfo/edit',
            query: { companyInfoId: row.id },

          },

          callBack: (data: any) => {
            handlers.refresh()
          },
          onClose: () => {
            console.log("对话框已关闭");
          },
        });

      },
      fixed: 'right'
    },

    {
      name: "删除",
      buttonClass: 'danger',
      buttonType: 'text',
      fixed: 'right',
      click: ({ row, index, handlers }) => {

        $baseConfirm('您确定要删除当前项吗', null, async () => {

          const { message } = await CompanyInfoApi.del({ companyInfoIds: row.id })
          $baseMessage(message, 'success', 'vab-hey-message-success');

          handlers.refresh()

        })

      }
    },

  ]

})


onActivated(() => {
})


</script>
